package 常用api;

public class 中断线程_api {
    public static void main(String[] args) throws InterruptedException {
        //Thread对象中，内置了一个中断标志位（类似我们自定义的）
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //当前线程，没有被中断，就一直执行。Thread.currentThread()表示获取当线程的对象
                    while (!Thread.currentThread().isInterrupted()){
                        Thread.sleep(1000);
                        System.out.println("t run");
                    }
                    //线程.sleep时，被中断，会抛出一个InterruptedException异常
                } catch (InterruptedException e) {
                    //是否要中断，是有线程自己的代码决定
                    e.printStackTrace();

                }
            }
        });
        t.start();
        Thread.sleep(3000);
        //main线程中，中断t线程
        t.interrupt();
    }
}
